#ifndef __CHANNEL_HPP__
#define __CHANNEL_HPP__

#include <iostream>
#include <string>
#include <unistd.h>

// 先描述
//  定义管道
class Channel
{
public:
    Channel(int wfd, pid_t who)
        :_wfd(wfd)
        ,_who(who)
    {
        // Channel-1-1234
        _name = "Channel-" + to_string(wfd) + "-" + to_string(who);
    }

    string Name()
    {
        return _name; 
    }

    void Send(int cmd)
    {
        ::write(_wfd, &cmd, sizeof(cmd));
    }

    void Close()
    {
        ::close(_wfd);  // 关闭写端，退出
    }

    pid_t Id()
    {
        return _who;
    }

    ~Channel()
    {
    }

private:
    int _wfd;     // master 的写端
    string _name; // 每个管道的名字
    pid_t _who;  // 当前进程的pid
};


#endif